home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
lisp
/
eulisp
/
mpfeel.lha
/
MPFeel
/
Modules
/
fib.em
< prev
next >
Wrap
Lisp/Scheme
|
1992-10-06
|
1KB
|
38 lines
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; EuLisp Module Copyright (C) University of Bath 1991 ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmodule fib
(standard0) ()
()
(defun ffib (x) (if (< x 2) 1 (+ (ffib (- x 1)) (ffib (- x 2)))))
(defun fib (x)
(if (< x 2)
1
(binary-plus (fib (binary-difference x 1))
(fib (binary-difference x 2)))))
(defgeneric gfib (x)
methods ((((x integer))
(if (< x 2) 1
(+ (gfib (- x 1))
(gfib (- x 2)))))))
;; Employ the methods directly (horrible n'est pas)
(defun rfib (x)
(if (generic_binary_lt\,Integer\,Integer x 2)
1
(generic_binary_plus\,Integer\,Integer
(rfib (generic_binary_difference\,Integer\,Integer x 1))
(rfib (generic_binary_difference\,Integer\,Integer x 2)))))
)